Learning Objectives

After completing this lesson, you’ll be able to:

Sharing FME Flow Content

FME Flow security and permissions work together to restrict and allow access to FME Flow items. It's important to ensure users have access to the items they're supposed to and oftentimes only the admin account is given access to all items on an FME Flow instance. 

When you create an item, you have full permissions for that item, however that does not mean your colleague can access it when they need to. Depending on the permissions set up for each user to access FME Flow items, the easiest way for FME Flow users to collaborate and access the same content is by sharing it across users and roles.

Generally, sharing content on FME Flow follows one of these methods:

Sharing a Repository

When you choose the Workspaces menu option in the FME Flow web interface, you will see a list of the repositories you have access to.

If you are the owner of a repository, then you can click the button to Share with Others:

Sharing a repository

Clicking this button opens a pop-up dialogue where you can select a user and choose the level of permission that you wish to give them:

Granting Full Access to a repository

Users and roles also impact FME Flow security. Roles are analogous to a group of users. When sharing a component, the "user" field can be an individual user or applied to a particular role. For example, you can give anyone in the fmeuser role the ability to run workspaces in a repository.

Note

Security is a critical capability. As an author, you might publish a workspace for multiple users within FME Flow. However, they can only use the workspace if they have access.

The Sharing Options dialog allows you to give others access to your workspace without needing the advanced User Management permissions.

FME Flow Apps

Sharing a repository is an excellent option for sharing workspaces with other users who also have access to FME Flow, but what if you want to allow anyone to submit a job without needing an account on FME Flow? Or what if you'd like to control the input parameters available to a user to submit a job? Or perhaps you'd like to allow another user to trigger your automation without letting them edit the automation? 

You can accomplish all of these using FME Flow Apps. You can create a Workspace App by clicking on Flow Apps from the FME Flow Menu:

Server Apps menu

To manage FME Flow Apps, click on Manage Workspace Apps. From here, you can manage all your existing apps and create new ones.

Flow Apps list

When creating a new Workspace App, you select which workspace you would like your app to run and can also set an expiration date to control how long the app will be accessible.

Create Workspace App page

Next, you can select which Published Parameters and default values you would like to display for your end-users to set when they use your Workspace App. If you deselect Show in App for a parameter, the user running the app will not be able to modify it, extending your control over how other users may run your workspace. 

Setting Published Parameters for a workspace app

After setting up your app and clicking OK, FME Flow will generate a Workspace App URL. Anyone with that URL can run the app you created but may have to log into FME Flow first if Require Authentication was selected.

FME Flow Workspace App URL

The FME Flow Workspace App link will open a simplified Run Workspace page:

FME Training Demo App

Note

You can also create an FME Flow Workspace App from the Run Workspace page for any workspace by clicking on Workspace Actions > Create Workspace App or from under the Advanced parameters section. This handy shortcut will directly open the Create Workspace FME Flow App page and automatically select the Workspace for you.

Note

Automation Apps and Gallery Apps are other types of FME Flow Apps that allow for easy sharing of FME Flow content.

Automation Apps allow automations to be triggered via the App interface while Gallery Apps act as landing pages for several Flow Apps and URLs  For more information, see Getting Started with Gallery Apps and Getting Started with Automation Apps

Webhook URL

Webhooks allow an application to run a workspace programmatically. You can create a Webhook URL for any workspace from the Run Workspace page. Webhooks help you build web applications that access FME Flow services because you can copy the HTTP request and embed it on your website or a 3rd party application. You could also embed the URL into an email, or paste the URL directly into a web browser. 

Note

For more information on Webhooks, see Working with FME and Webhooks.

FME Flow REST API

In more advanced use cases, you can also share the results of workspaces with users who don't have an FME Flow account using the FME Flow REST API. You can make an API call to FME Flow to run a workspace and include the results in your external applications.

Note

The webhook URL can use the FME Flow services (Data Download, Data Streaming), whereas the REST API can only submit jobs using the REST service, which acts similarly to the Job Submitter service. You can see demos using the FME Flow REST API or read the documentation for more information.

Share Content Through Projects

Projects are used to group FME Flow items that share a common solution, or 'project', in your organization. By grouping items in projects, you can reference them in one easy place and can include just about any FME Flow item.

The main advantage of using projects is that they facilitate the easy transfer of content between FME Flow instances. This transfer is essential when migrating through various stages of development (such as from development, testing, to production servers).

Projects also allow you to share multiple items simultaneously. Compiling a project will allow you to package up all the required workspaces, repositories, files, and other components in a single .fsproject file. You can share the project file with other users within a Flow instance or export it and import it to other Flow instances.

Encryption was introduced to FME Flow in 2023.1 and is something to be aware of when importing and exporting projects between different FME Flow instances. The default encryption mode setting is “Standard,” which applies a custom encryption key specific to your FME Flow installation.

If you are using a Safe Software-provided machine for the Flow Authoring course the Flow Instance will be set to "Weak." For more information please see our System Encryption Documentation.

Creating the Project

From the side menu, click Projects, and you will be taken to the Manage Projects screen. To open a dialogue for a new project, click on the “Create Project” heading in the menu or the blue “Create” button on the page.

 

First, you need to give your project a name, which will be in the file's name if it is exported and imported. A description is also required and will be the text displayed under the “Description” heading in Manage Projects.

Scroll down on this page to the next heading of “Project Contents”. When creating a new project, this area will be empty and you will need to click “Add Items” to open a new window.

In the “Add Items” window, there is an “Item Type” drop-down menu where you can select which item types to display to aid your search. Below is an example of a workspace being added to a project. First, the Item Type is set to Workspace, which allows a Repository to be selected. Lastly, the blue + icon adds the desired workspace to the project.

Some items, such as tokens and workspace apps, can only be included if you are the owner. Permissions for other roles can be set accordingly to allow access to items you do not own. For more information, please see Getting Started with FME Flow Projects.

Once you have added all the items required, click “Add Items." You will then see these items in “Project Contents.” If an item you have added requires files, connections, or tokens to run, these are listed as Dependencies and will be automatically included in the project.

Exporting the Project

Click the checkbox next to the “Name” column and select the “Export” button. Alternatively, you can open the project by clicking on the Name and selecting Export from the drop-down menu. To allow others to import the project to any other Flow instance without the encryption key, uncheck the box" “Include sensitive information” box.

Importing a Project

To import a project file, click the Import button on the Manage Projects screen. There's an option to Upload an .fsproject file from your computer or to import it from the Resources on FME Flow. 

Quick Import vs Import

There are two methods of importing a project: quick import and import. The quick import option skips the import configuration steps and imports all items in the project, with the option to overwrite existing items or not. This is a good option if the project file only contains a few items and you want to import them all.

The Import button will preview all items in the project and allow you to deselect dependencies if you wish to exclude them. You may not want to import all dependencies of items, such as connections and deployment parameters.

Here is an example of a project that contains items that already exist on FME Flow. Clicking the “Allow items to be overwritten if they already exist” toggle will allow FME Flow to overwrite those items with new ones from the project.

Additional steps while configuring a project for import include the ability to deselect item dependencies from being included and resolving differences between the owner user for items. You can navigate between each step and then lastly, import the project.